//
//  LoginManagerProtocal.h
//  MyLoginTest
//
//  Created by Mr.LuDashi on 16/8/26.
//  Copyright © 2016年 ZeluLi. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

#define LOGIN_SDK_BUNDLE_NAME   @"gamesdkResource.bundle"

#define LOGIN_SDK_BUNDLE_PATH   [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent: LOGIN_SDK_BUNDLE_NAME]
#define LOGIN_SDK_BUNDLE        [NSBundle bundleWithPath: LOGIN_SDK_BUNDLE_PATH]

#define LOGIN_STORYBOARD_NAME @"LoginSDK"
#define LOGIN_VIEWCONTROLLER_NAME @"LoginViewController" //登录
#define REGISTERINSTANT_VC @"RegisterInstantViewController" //立即注册
#define REGISTERONE_VC @"RegisterOneViewController" //一键注册
#define FORGET_PASSWORD_VC @"forgetPasswordViewController" //忘记密码




typedef void(^RegVCBlock)(BOOL isSucess);            //注册成功后的回调
typedef void(^LoginFailureBlock)(NSString * errorMessage);  //失败回调
typedef void(^NoAccountLoginBlock)();                   //没有登录过的账号

/**
 角色信息同步block回调
 @param data 服务器返回信息
 @param isSucess 是否成功
 */
typedef void(^SyncBlock)(NSString *data, BOOL isSucess);            //角色信息同步的回调

typedef void(^LogoutBlock)(BOOL isSucess);

/**
 登录block回调
 @param data 服务器返回信息
 @param isSucess 是否成功
 */
typedef void(^LoginBlock)(NSString *data, BOOL isSucess);

/**
 支付url block回调
 @param isSucess 是否成功
 @param payURL 支付网址
 */
typedef void(^payURLBlock)(NSString *payURL, BOOL isSucess);

/**
 支付界面block回调
 @param payVC 支付界面
 */
typedef void(^payVCBlock)(UIViewController *payVC);

/**
 支付结果 block回调
 @param isSucess 是否成功
*/
typedef void(^payResultBlock)(BOOL isSucess);

/**
 支付切换
 @param flag
 @param data
 */
typedef void(^payStateBlock)(NSString *data,BOOL flag);

/**
 注册block回调
 @param data
 @param ret 类型：200-成功，10002-账号已存在
 */
typedef void(^RegisterBlock)(NSString *data, int ret);

@protocol LoginManagerProtocal <NSObject>
/**
 *  获取账户管理的单例
 *
 *  @return 返回账户管理的Manager
 */
@optional + (instancetype)shareManager;

/**
 *  设置相应的Block回调
 *
 *  @param loginBlock  登录成功回调
 *  @param logoutBlock 注销成功回调
 *  @param failBlock   失败回调
 */
@optional - (void)setLoginResult: (LoginBlock)loginBlock
                    failureBlock: (LoginFailureBlock) failBlock;


@end
